
cc.Class({
    extends: cc.Component,

    properties: {

    },

    // onLoad () {},

    start() {

    },

    // 碰撞 生命周期
    /**
     * 当碰撞产生的时候调用
     * @param  {Collider} other 产生碰撞的另一个碰撞组件
     * @param  {Collider} self  产生碰撞的自身的碰撞组件
     */

    onCollisionEnter: function (other, self) {
        let otherRect = other.world.aabb;
        let selfRect = self.world.aabb;
        if (cc.Intersection.rectRect(otherRect, selfRect)) {
            if (other.tag == self.tag) {
                this.realEgo({ action: 'OCCUPY', tag: other.tag });
            }
        }
    },

    onCollisionStay: function (other, self) {

    },

    /**
     * 当碰撞结束后调用
     * @param  {Collider} other 产生碰撞的另一个碰撞组件
     * @param  {Collider} self  产生碰撞的自身的碰撞组件
     */
    onCollisionExit: function (other, self) {
        if (other.tag == self.tag) {
            this.realEgo({ action: 'LEAVE', tag: other.tag });
        }
    },

    // dispatchEvent 信息
    realEgo(data) {
        let message = new cc.Event.EventCustom('realEgo', true);
        message.setUserData(data);
        this.node.dispatchEvent(message);
    },
    // update (dt) {},
});
